home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw GX / Programming Stuff / Sample Code / Printing Samples / Extensions… / Spooling ƒ / Spooling.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-20  |  3.5 KB  |  105 lines  |  [TEXT/MPS ]

  1. /*________________________________________________________
  2.  
  3.     File: Spooling.h
  4.  
  5.     C header file for a printing extension which redirects
  6.     spool files.
  7.  
  8.     Dave Hersey
  9.     Apple Developer Technical Support
  10.  
  11.      1/29/93 - dmh - begat.
  12.      4/27/93 - dmh - Updated for b1.
  13.      9/06/93 - dmh - Updated for b2.
  14.              - Switched to Exception.h assertion stuff
  15.                for error checking.
  16.     12/18/93 - dmh - Updated for b3.
  17.      3/22/94 - dmh - Updated for b4.
  18.  
  19.     (Note: labels are in the Mark menu.)
  20.     
  21. __________________________________________________________*/
  22.  
  23. #include <Types.h>
  24. #include <Errors.h>
  25. #include <Resources.h>
  26. #include <ToolUtils.h>
  27. #include <Aliases.h>
  28. #include <Folders.h>
  29. #include <StandardFile.h>
  30. #include <GXExceptions.h>
  31. #include <GXGraphics.h>
  32. #include <GXTypes.h>
  33. #include <Collections.h>
  34. #include <GXPrinting.h>
  35.  
  36. #define kRedirectDisabled        0         /* spool redirection is turned off.        */
  37.  
  38. #define kCreator                '≠-34'
  39. #define kSpoolCollectionType    kCreator /* our collection type.                    */
  40.  
  41. #define kAliasID                12345     /* the resource ID of our folder alias.    */
  42. #define kConfigType                'INFO'     /* our collection's resource type.            */
  43. #define kConfigID                10101
  44.  
  45. #define kPrefsFileCreator        'RSED'     /* Our preferences file will be a            */
  46. #define kPrefsFileType            'rsrc'     /* ResEdit-owned resource file.            */
  47.  
  48. #define r_fileDlogID            7000     /* resource ID of our custom file dialog.    */
  49. #define d_selectItem            10          /* DITL ID of select button.                */
  50. #define d_selectDirectory        4         /* "Spool to…" button.                        */
  51.  
  52. #define r_spoolPanel            6000     /* our panel ID.                            */
  53. #define d_folderName            6         /* text field for current folder name.        */
  54. #define d_volumeName            8         /* text field for current volume name.        */
  55.  
  56. #define    r_stringRsrc            200         /* resource ID of our STR# list.            */
  57. #define    r_prefsStrIdx            1         /* STR# item w/the name of the Prefs file.    */
  58.  
  59.  
  60. // This is what our collection looks like.
  61.  
  62. typedef struct SpoolCollection
  63. {                                    // offset:
  64.     unsigned char    extTurnedOn;    //   0        on/off setting from panel.
  65.     char            fillByte;        //           fill byte.
  66.     Str63            folderName;        //     2        name of the selected folder.
  67.     Str63            volumeName;        //            name of the selected volume.
  68. } SpoolCollection;
  69.  
  70.  
  71. // Function prototypes:
  72.  
  73. // external defines for creating our A5 world.
  74.  
  75. extern long A5Size (void);
  76. extern void A5Init (void *);
  77.  
  78. OSErr    InitGlobalData(void);
  79. OSErr    SPInitialize(void);
  80. OSErr    SPShutDown(void);
  81. OSErr    SPJobPrintDialog(gxDialogResult *dlogResult);
  82. OSErr    SetUpPrintPanel(void);
  83. OSErr    SPHandlePanelEvent(gxPanelInfoRecord *panelInfo);
  84. void    OpenSpoolPanel(DialogPtr pDlg, short itemCount);
  85. OSErr    SavePanelChanges(void);
  86. OSErr    SPCreateSpoolFile(FSSpec *anFSSpec, long createOptions, gxSpoolFile *spFile);
  87. Boolean    GetFolder(FSSpec *fSpec);
  88. pascal    short MyDlgHook(short item, DialogPtr theDlg, Ptr userData);
  89. pascal    Boolean FilterAllFiles(CInfoPBPtr pb, Ptr myDataPtr);
  90. OSErr    GetDefaultSettings(SpoolCollection *spoolConfig);
  91. long    GetActualDirID(FSSpec *fSpec);
  92. OSErr    OpenPrefsFile(short *resRefNum, char permission);
  93. OSErr    ReplaceResource(Handle newData, OSType resourceType, short resourceID);
  94. OSErr    GetSpoolCollection(SpoolCollection *spoolCollect);
  95. Boolean    AliasToPathName(AliasHandle anAlias, char *folderName, char *volName);
  96. void    GetPrefsName(char *prefsName);
  97.  
  98.  
  99. /* globals */
  100.  
  101. extern Str255        gPrefsFileName;            // The name of our preferences file.
  102. extern AliasHandle    gCurFolderAlias;        // The current folder alias used by the panel.
  103. extern Boolean        gSettingsChanged;        // True if we have panel changes to save.
  104. extern Boolean        gLastEnableSetting;        // The "enabled" setting when we opened the panel.
  105.